Android Studio打包apk

您所在的位置:网站首页 android studio导出apk手机无法解析 Android Studio打包apk

Android Studio打包apk

2023-10-18 10:25| 来源: 网络整理| 查看: 265

打包之前建议学习:Android Studio系列之代码混淆proguardFiles

普通的apk打包

Build->Generate Signed Bundle/APK

在这里插入图片描述 如果已经拥有apk密钥,则选择已经存在的密钥,然后输入密码信息即可,否则创建密钥Create new…。 在这里插入图片描述 在这里插入图片描述 记得好好保管密钥文件和密码额。

以上设置好了就点击Next, 在这里插入图片描述 此时查看Event Log窗口,查看输出信息,点击locate可以跳转到apk文件位置。 在这里插入图片描述

分渠道打包 不错,我们需要用到分渠道打包,那么我们需要解决两个问题 怎么区分各个平台的标识怎么每次版本更新都生成几十个包、几百个包 第一个简单,用过友盟打包的同学肯定不陌生这段代码

value里面填的就是各个平台的值,比如填写uc、yyb(应用宝)、360、baidu替换掉Channel_ID,App安装好,可以读取这个值然后传给后台,从而实现区分各个平台的安装需求。

实现: 1.在AndroidManifest.xml中增加meta-data

/*${channelName} 是对应build.gradle文件中的channelName的值 productFlavors.all { flavor -> flavor.manifestPlaceholders = [channelName: name] } 关于manifestPlaceholders 占位符我们稍后讲解 */

2.修改app模块下的build.gradle文件,在android空间内增加如下内容

apply plugin: 'com.android.application' def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) } android { defaultConfig { applicationId "com.xxx.demo2" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode rootProject.ext.versionCode//ext属于根目录gradle的属性 versionName rootProject.ext.versionName flavorDimensions "default" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { config { keyAlias 'key0'//别名 keyPassword '123456'//密码 //秘钥位置 storeFile file('E:\\work\\android\\RocketBrowser\\SourceCodes\\app\\key0.jks') storePassword '123456'//存储密码 } } //配置编译选项 buildTypes { release { debuggable false minifyEnabled true shrinkResources true signingConfig signingConfigs.config proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { debuggable true minifyEnabled false shrinkResources false signingConfig signingConfigs.config proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } productFlavors{ baidu{ manifestPlaceholders += [PID:"PIDLKDpQaIly"] } xiaomi{ manifestPlaceholders += [PID:"PIDLKDpQaIly"] } huawei{ manifestPlaceholders += [PID:"PIDLKDpQaIly"] } qihu360{ manifestPlaceholders += [PID:"PIDLKDpQaIly"] } } productFlavors.all { flavor -> flavor.manifestPlaceholders = [channelName: name] } applicationVariants.all { variant -> variant.outputs.all { def fileName = "Rocket_${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" outputFileName = fileName } } } //defaultConfig 需要配置flavorDimensions,否则会报错 flavorDimensions "default"

3.修改根目录下的build.gradle文件,提供ext属性

ext { ext.kotlin_version = '1.3.41' compileSdkVersion = 28 supportLibVersion = '28.0.3' minSdkVersion = 21 targetSdkVersion = 28 versionCode = 15 versionName = "1.2.1.2" }

关于的manifestPlaceholders 可以参考 meta-data 占位符的引用 配置文件修改之后,在android studio 的Terminal窗口,执行gradlew assembleRelease,此时就会正常编译并且打包,生成的文件在app->build->outputs->apk目录下。 在这里插入图片描述 使用gradlew assembleRelease的时候可能会提示JAVA_HOME没有设置,此时我们到环境变量设置一下信息,然后重启android studio: 在这里插入图片描述 配置系统变量Path: 在这里插入图片描述

在这里插入图片描述

渠道配置也可以通过窗口设置 在这里插入图片描述

eg:修改秘钥信息: 在这里插入图片描述 eg:修改渠道信息

在这里插入图片描述

apk打包 https://blog.csdn.net/u010883308/article/details/82318956 https://www.cnblogs.com/sunjiachen/p/11457630.html manifestPlaceholders apk信息获取PackageManager https://blog.csdn.net/u012532559/article/details/52805632 占位符manifestPlaceholders https://blog.csdn.net/u010227042/article/details/83182120 apk瘦身 https://blog.csdn.net/qq_32175491/article/details/80071987



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3